package com.ambow.teaching.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 用于演示JDBC的基本操作。
 * 
 * @author deng.zhao
 *
 */
public class JDBCTest {
	// 数据库用户名；
	public static final String USER = "user";
	// 数据库密码；
	public static final String PASSWORD = "user";
	// 数据库连接字符串；
	public static final String URL = "jdbc:derby://localhost:1527/testDB";
	// 数据库驱动类名；
	public static final String CLASSNAME = "org.apache.derby.jdbc.ClientDriver";

	public static void addUser() {
		String sql = "insert into Users(name, password, registrationTime) values('wangwu', 'hello', '2016-06-07')";

		try {
			// 1、加载驱动( 高版本的JDK中可以不书写）；
			Class.forName(CLASSNAME);
			// 2、创建连接对象；
			Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
			// 3、创建语句对象；
			Statement stmt = conn.createStatement();
			// 4、执行语句；
			int rowCount = stmt.executeUpdate(sql);
			System.out.println(rowCount);
			// 5、关闭语句对象；
			stmt.close();
			// 6、关闭连接对象；
			conn.close();
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}

		System.out.println("OK");
	}

	public static void queryUsers() {
		String sql = "select id, name, password, registrationTime from Users";

		try {
			// 1、加载驱动；
			Class.forName(CLASSNAME);
			// 2、创建连接对象；
			Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
			// 3、创建语句对象；
			Statement stmt = conn.createStatement();
			// 4、执行语句并获取结果集对象；
			ResultSet rs = stmt.executeQuery(sql);
			// 5、操作结果集；
			while (rs.next()) {
				int id = rs.getInt(1);
				String name = rs.getString(2);
				String password = rs.getString(3);
				System.out.println(id + ", " + name + ", " + password);
			}
			// 6、关闭结果集对象；
			rs.close();
			// 7、关闭语句对象；
			stmt.close();
			// 8、关闭连接对象；
			conn.close();
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}

		System.out.println("OK");
	}

	public static void main(String[] args) {
		// addUser();
		queryUsers();
	}

}
